// Fill out your copyright notice in the Description page of Project Settings.

#pragma once

#include "CoreMinimal.h"
#include "VerificationOfsignatureBase.h"
#include "OpenAPISignature.generated.h"

USTRUCT(BlueprintType)
struct SIMPLEHTTPREQUEST_API FOpenAPISignatureInfo
{
	GENERATED_BODY()

public:

	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString userName;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString artemisIp;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		int artemisPort = 0;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString appKey;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString appSecret;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString unitCode;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString treeNode;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString cameraIndexCode;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		int start = 0;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		int limit = 1000;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString order = "name";
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString sortby;
	UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "OpenAPISignature")
		FString body;
};

/**
 * 
 */
UCLASS(BlueprintType, Category = "SimpleHttpObj")
class SIMPLEHTTPREQUEST_API UOpenAPISignature : public UVerificationOfsignatureBase
{
	GENERATED_BODY()
private:
	FOpenAPISignatureInfo SignatureInfo;
public:

	UFUNCTION(BlueprintCallable, Category = "SimpleHttpObj")
		void SetSignatureInfo(FOpenAPISignatureInfo info);

protected:

	virtual FMKSimpleHttpRequestData VerificationOfsignature(
		FMKSimpleHttpRequestData data)override;
};
